package com.carsa.blackberry.domain.services;

/**
 * @author Nahuel Barrios.
 * @since 23/08/2010.
 * @version 1.0
 */
public interface GenericService {

    /**
     * @param legajo
     *            El legajo del chofer. Es el input del Web Service.
     * @return Un {@link Vector} con las N entregas nuevas, o <code>null</code> si ocurrio algun error y por algun
     *         motivo no se pudo recuperar las entregas utilizando el Web Service.
     */
    // public Vector fetchEntregasFromWS(String legajo);

    /**
     * @param legajo
     * @return
     */
    // TODO : Javadoc : Terminate this Javadoc.
    // public Vector getEntregasPendientes();

    /**
     * @return <code>true</code> si se pudieron actualizar correctamente las entregas, o <code>false</code> en caso de
     *         que no se hayan actualizado. Nota: Puede ser que se hayan actualizado y la cantidad de entregas nuevas
     *         sea 0, aun asi, retornaria <code>true</code>.
     */
    // public boolean refreshEntregas();

    /**
     * @return Los legajos de los choferes, si es lo que indica el archivo XML de persistencia de motivos. Esto depende
     *         de la ultima fecha de actualizacion que tenga el archivo.
     */
    // public Vector fetchLegajos();

    /**
     * @return Los motivos y submotivos, si es lo que indica el archivo XML de persistencia de motivos. Esto depende de
     *         la ultima fecha de actualizacion que tenga el archivo.
     */
    // public Vector fetchMotivos();

    /**
     * @param unaEntrega
     *            La {@link EntregaDTO} que se va a calificar como exitosa.
     * @param parameters
     *            Un {@link Hashtable} con los parametros de fecha conteniendo el momento en que el usuario confirma la
     *            operacion.
     */
    // public void markEntregaAsSuccess(EntregaDTO unaEntrega, Hashtable parameters);

    /**
     * @param unaEntrega
     *            Un {@link EntregaDTO} con la entrega ya calificada como exitosa/fallida.
     * @return <code>true</code> si se pudo persistir correctamente, o <code>false</code> si tuvo que ser encolado para
     *         un posterior procesado.
     */
    // public boolean persistRefreshedEntrega(EntregaDTO unaEntrega);

    /**
     * @param unaEntrega
     *            La entrega que se va a calificar como fallida (total o parcial).
     * @param parameters
     *            Los parametros de motivo, submotivo y fecha conteniendo el momento en que el usuario confirma la
     *            operacion.
     */
    // public void markEntregaAsFail(EntregaDTO unaEntrega, Hashtable parameters);

    /**
     * @param legajo
     * @return
     */
    // TODO : Javadoc : Terminate this Javadoc.
    // public Vector fetchEntregas(String legajo);

}
